home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 44 / Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso / -in_the_mag- / basics / blitz / methodbblib.lha / MethodBBLib / Examples / MUIExample.asc < prev   
Text File  |  1997-07-27  |  4KB  |  127 lines

  1. ;Based on a C source from Amiga News 81 by Eric Totel
  2. ;Adapted in Blitz Basic 2 by Erwan Fouret
  3.  
  4. ;Please use XINCLUDE "mui.bb2" instead defines below
  5.  
  6. ;***** libraries/mui.h (c)Stefan Stuntz *****
  7.  
  8. #MUIO_Button=2
  9.  
  10. #MUIA_String_MaxLen=$80424984
  11. #MUIA_String_Contents=$80428FFD
  12. #MUIA_Frame=$8042AC64
  13. #MUIV_Frame_String=4
  14.  
  15. #MUIA_Group_Child=$804226E6
  16. #MUIA_Group_Horiz=$8042536B
  17. #Child=#MUIA_Group_Child
  18.  
  19. #MUIA_Window_Title=$8042AD3D
  20. #MUIA_Window_RootObject=$8042CBA5
  21. #MUIA_Window_Open=$80428AA0
  22. #MUIA_Window_CloseRequest=$8042E86E
  23. #WindowContents=#MUIA_Window_RootObject
  24.  
  25. #MUIA_Application_Title=$804281B8
  26. #MUIA_Application_Author=$80424842
  27. #MUIA_Application_Base=$8042E07A
  28. #MUIA_Application_Copyright=$8042EF4D
  29. #MUIA_Application_Description=$80421FC6
  30. #MUIA_Application_Version=$8042B33F
  31. #MUIA_Application_Window=$8042BFE0
  32. #SubWindow=#MUIA_Application_Window
  33.  
  34. #MUIV_Application_ReturnID_Quit=-1
  35.  
  36. #MUIM_Notify=$8042C9CB
  37. #MUIA_Pressed=$80423535
  38. #MUIM_Set=$8042549A
  39. #MUIA_ShowMe=$80429BA8
  40. #MUIM_Application_ReturnID=$804276EF
  41. #MUIM_Application_Input=$8042D0F5
  42.  
  43. ;***** BEGIN *****
  44.  
  45. WBStartup
  46. NoCli:CloseEd
  47.  
  48. NEWTYPE.tags a.l:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:End NEWTYPE
  49.  
  50. DEFTYPE.tags atags,wtags,vtags,stags,htags,setags,dm1tags,dm2tags,dm3tags
  51. DEFTYPE.l
  52.  
  53. Dim t$(10),*tp.b(10)
  54.  
  55. t$(0)="Test"                           ;Application Title
  56. t$(1)="Erwan Fouret"                   ;Application Author
  57. t$(2)="TEST"                           ;Application Base
  58. t$(3)="Erwan Fouret"                   ;Application Copyright
  59. t$(4)="An example of MUI application"  ;Application Description
  60. t$(5)="$VER: TestMUIV1.0 (02.02.97)"   ;Application Version
  61. t$(6)="Test"                           ;Window Title
  62. t$(7)="Text"                           ;String Text
  63. t$(8)="_Hide"                          ;Button Text
  64. t$(9)="_Quit"                          ;Button Text
  65.  
  66. For i=0 To 9          ;We make pointers
  67.  t$(i)=t$(i)+Chr$(0)  ;of strings
  68.  *tp(i)=&t$(i)        ;for use in tags
  69. Next i
  70.  
  71. *BT_Quit.b=MUI_MakeObjectA_(#MUIO_Button,&*tp(9))  ;We make two simple
  72. *BT_Hide.b=MUI_MakeObjectA_(#MUIO_Button,&*tp(8))  ;buttons
  73.  
  74. stags\a=#MUIA_Frame,#MUIV_Frame_String  ;Tags definition
  75. stags\c=#MUIA_String_MaxLen,80          ;for the creation
  76. stags\e=#MUIA_String_Contents,*tp(7),0  ;of a string gadget
  77.  
  78. *STR_String.b=MUI_NewObjectA_("String.mui",stags) ;We make it
  79.  
  80. htags\a=#MUIA_Group_Horiz,1               ;Tags for an horizontal group
  81. htags\c=#Child,*BT_Hide,#Child,*BT_Quit,0
  82.  
  83. vtags\a=#Child,*STR_String,#Child,MUI_NewObjectA_("Group.mui",htags),0
  84. ;Tags for a vertical group
  85.  
  86. wtags\a=#MUIA_Window_Title,*tp(6)                            ;Tags for
  87. wtags\c=#WindowContents,MUI_NewObjectA_("Group.mui",vtags),0 ;a simple win
  88.  
  89. *MyWindow.b=MUI_NewObjectA_("Window.mui",wtags) ;We create the window
  90.  
  91. atags\a=#MUIA_Application_Title,*tp(0)       ;Tags
  92. atags\c=#MUIA_Application_Author,*tp(1)      ;for
  93. atags\e=#MUIA_Application_Base,*tp(2)        ;the
  94. atags\g=#MUIA_Application_Copyright,*tp(3)   ;MUI
  95. atags\i=#MUIA_Application_Description,*tp(4) ;appliaction
  96. atags\k=#MUIA_Application_Version,*tp(5)
  97. atags\m=#SubWindow,*MyWindow,0
  98.  
  99. *App.b=MUI_NewObjectA_("Application.mui",atags) ;The application is created !
  100.  
  101. DoMethod *BT_Hide,#MUIM_Notify,#MUIA_Pressed,0,*STR_String,3,#MUIM_Set,#MUIA_ShowMe,0
  102. DoMethod *BT_Quit,#MUIM_Notify,#MUIA_Pressed,0,*App,2,#MUIM_Application_ReturnID,#MUIV_Application_ReturnID_Quit
  103. ;These methods specify the action to execute when a button is pressed
  104.  
  105. DoMethod *MyWindow,#MUIM_Notify,#MUIA_Window_CloseRequest,1,*App,2,#MUIM_Application_ReturnID,#MUIV_Application_ReturnID_Quit
  106. ;Quit if the window is closed
  107.  
  108. setags\a=#MUIA_Window_Open,1,0
  109.  
  110. SetAttrsA_ *MyWindow,setags  ;We open the Window
  111.  
  112. running=1
  113.  
  114. signal.l=0
  115.  
  116. While(running)                                          ;Main loop
  117.  Select DoMethod(*App,#MUIM_Application_Input,&signal)  ;Is there a signal ???
  118.  Case #MUIV_Application_ReturnID_Quit                      ;Quit ?
  119.   running=0
  120.  End Select
  121.  If (running & signal) Wait_(signal)                    ;Wait for next signal
  122. Wend
  123.  
  124. MUI_DisposeObject_ *App                                 ;Free the application
  125.  
  126. End
  127.